// pages/category/index.js
import fetch from '../../request/index'
Page({
  // 页面的初始数据
  data: {
    // 商品分类菜单
    goodsCategoryMenu: [],
    // 商品分类数据
    goodsCategoryList: [],
    // 选中商品分类菜单索引
    menuIndex: 0,
    // scroll-view的scroll-top值
    scrollTop: 0
  },
  // 接口返回数据
  Cates: [],
  // 生命周期函数--监听页面加载
  onLoad: function (options) {
    this.catesStorage()
  },
  // 获取商品分类数据
  async getCates() {
    // fetch({ url: '/categories' }).then((res) => {
    //   // 接口返回的数据
    //   this.Cates = res.data.message
    //   // 把接口返回的数据存入本地存储中
    //   wx.setStorageSync('cates', { time: Date.now(), data: this.Cates })

    //   this.setData({
    //     goodsCategoryMenu: this.Cates.map((v) => v.cat_name),
    //     goodsCategoryList: this.Cates[0].children
    //   })
    // })
    const res = await fetch({ url: '/categories' })
    // 接口返回的数据
    this.Cates = res
    // 把接口返回的数据存入本地存储中
    wx.setStorageSync('cates', { time: Date.now(), data: this.Cates })
    // 更新
    this.setData({
      goodsCategoryMenu: this.Cates.map((v) => v.cat_name),
      goodsCategoryList: this.Cates[0].children
    })
  },
  // 点击商品分类菜单事件
  handleItem(e) {
    this.setData({
      menuIndex: e.target.dataset.index,
      goodsCategoryList: this.Cates[e.target.dataset.index].children,
      // 重置滚动值
      scrollTop: 0
    })
  },
  // 判断本地存储中是否有数据，有就发起请求
  catesStorage() {
    // 获取本地存储中的数据
    const Cates = wx.getStorageSync('cates')
    // 判断是否存在数据
    if (!Cates) {
      // 不存在 发起请求获取数据
      this.getCates()
      return
    }
    // 存在 判断是否过期
    if (Date.now() - Cates.time > 1000 * 10) {
      // 过期 发起请求获取数据
      this.getCates()
    } else {
      // console.log('可以使用旧数据')
      this.Cates = Cates.data
      this.setData({
        goodsCategoryMenu: this.Cates.map((v) => v.cat_name),
        goodsCategoryList: this.Cates[0].children
      })
    }
  }
})
